"""
显示操作
1、创建一个空白的窗口
2、设置显示选项
3、显示
"""
import sys
from typing import Optional
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QWidget


class DisplayWidget(QWidget):
    """
    QWidget: 所有可显示类的基类
    """
    def __init__(self, parent: Optional[QWidget] = None, f: Qt.WindowFlags = Qt.Widget) -> None:
        """
        parent: 上一级可显示对象. 
        f: 显示选项，~为取消，如当前取消了最大化
        """
        super().__init__(parent=parent, f=f)
        self.init_windowflags()
        self.show() # 调用显示
    
    def init_windowflags(self):
        """
        设置窗口属性，具体在Qt.WindowType
        """
        # 使能：永久保持最上方
        self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)
        # 去使能：窗口最大最小化
        self.setWindowFlags(self.windowFlags() & ~Qt.WindowMaximizeButtonHint & ~Qt.WindowMinimizeButtonHint)



if __name__ == "__main__":
    app = QApplication(sys.argv)        # 主流程控制，一个程序只能有一个QApplication，sys可以用于命令行导入
    window = DisplayWidget()
    sys.exit(app.exec())               # 控制程序安全退出


